home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / hw16v22.zip / HEX.MST < prev    next >
Text File  |  1996-08-03  |  12KB  |  340 lines

  1. '**************************************************************************
  2. '*                       Hex Workshop Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msregdb.inc'
  10.  
  11. ''Dialog ID's
  12. CONST DESTPATH      = 300
  13. CONST BADPATH       = 6400
  14.  
  15. CONST ASKQUIT       = 200
  16. CONST EXITFAILURE   = 400
  17. CONST EXITQUIT      = 600
  18. CONST EXITSUCCESS   = 700
  19.  
  20. CONST APPHELP       = 900
  21.  
  22. CONST ASKFMEXT      = 800
  23.  
  24. CONST ASKVCTOOLS    = 2500
  25.  
  26. ''Bitmap ID
  27. CONST LOGO = 1
  28.  
  29. CONST WS_VISIBLE = &H10000000
  30. CONST WS_BORDER = &H00800000
  31. CONST WS_CLIPCHILDREN =    &H02000000
  32. CONST GWL_STYLE = -16
  33. CONST SW_SHOWMAXIMIZED = 3
  34.                 
  35.                 
  36. GLOBAL VERSION$     ''Hex Workshop Version
  37. GLOBAL DEST$        ''Default destination directory.
  38. GLOBAL PATH$        ''Path retrieved from WIN.INI
  39. GLOBAL WINDRIVE$    ''Windows drive
  40. GLOBAL WINDIR$        ''Windows directory
  41.                                              
  42. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  43. DECLARE FUNCTION GetDir (szPath$) AS STRING
  44.  
  45. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%, iShow%) AS INTEGER
  46. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG     
  47.  
  48.  
  49. INIT:
  50.  
  51. '' General Init                         
  52.     VERSION$ = "2.20"
  53.  
  54.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  55.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  56.  
  57.     SetBitmap CUIDLL$, LOGO
  58.     SetTitle ""
  59.  
  60.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  61.     IF szInf$ = "" THEN
  62.         szInf$ = GetSymbolValue("STF_CWDDIR") + "HEX.INF"
  63.     END IF
  64.     ReadInfFile szInf$
  65.  
  66. '' Maximize Window and eliminate title bar
  67.     hWnd% = HwndFrame()
  68.     rc% = SetWindowLong(hWnd%, GWL_STYLE, WS_VISIBLE + WS_BORDER + WS_CLIPCHILDREN)
  69.     rc% = ShowWindow(hWnd%, SW_SHOWMAXIMIZED)
  70.  
  71. '' Path Init (get current path if present)
  72.     PATH$ = GetIniKeyString("WIN.INI", "Hex Workshop", "Path")
  73.     IF LEN(PATH$) = 0 THEN
  74.         WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  75.         DEST$ = WINDRIVE$ + ":\HEXWORKS"
  76.     ELSE
  77.            DEST$ = GetDir(PATH$)
  78.     ENDIF
  79.  
  80.  
  81.  
  82. GETPATHDLG:
  83. '' Path to Install Init
  84.  
  85.     SetSymbolValue "EditTextIn", DEST$
  86.     SetSymbolValue "EditFocus", "END"
  87. GETPATHAGAIN:    
  88. '' Path to Install Entry
  89.  
  90.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  91.     DEST$ = GetSymbolValue("EditTextOut")
  92.  
  93.     IF sz$ = "CONTINUE" THEN
  94.         IF IsDirWritable(DEST$) = 0 THEN
  95.             GOSUB BADPATH
  96.             GOTO GETPATHAGAIN
  97.         END IF
  98.         UIPop 1
  99.     ELSEIF sz$ = "REACTIVATE" THEN
  100.         GOTO GETPATHAGAIN
  101.     ELSE
  102.         GOSUB ASKQUIT
  103.         GOTO GETPATHDLG
  104.     END IF
  105.  
  106.  
  107.         
  108.         
  109. INSTALL:               
  110. '' Installation
  111.  
  112.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  113.     CreateDir DEST$, cmoNone
  114.  
  115.     AddSectionFilesToCopyList "AppFiles", SrcDir$, DEST$
  116.     
  117.     CopyFilesInCopyList
  118.     
  119.  
  120.  
  121. '' Program Group
  122.     CreateProgmanGroup "Hex Workshop", "", cmoNone
  123.     ShowProgmanGroup  "Hex Workshop", 1, cmoNone
  124.     CreateProgmanItem "Hex Workshop", "Hex Workshop", MakePath(DEST$, "HWORKS16.EXE"), "", cmoOverwrite
  125.     CreateProgmanItem "Hex Workshop", "Base Converter", MakePath(DEST$, "BCONV16.EXE"), "", cmoOverwrite
  126.     CreateProgmanItem "Hex Workshop", "Calculator", MakePath(DEST$, "CALC16.EXE"), "", cmoOverwrite
  127.     CreateProgmanItem "Hex Workshop", "Hex Workshop Help", MakePath(DEST$, "HEXWORKS.HLP"), "", cmoOverwrite
  128.     CreateProgmanItem "Hex Workshop", "Readme", MakePath(DEST$, "README16.TXT"), "", cmoOverwrite
  129.     CreateProgmanItem "Hex Workshop", "How to Order", MakePath(DEST$, "HOWORDER.TXT"), "", cmoOverwrite
  130.     CreateProgmanItem "Hex Workshop", "Order Form", MakePath(DEST$, "ORDERFRM.TXT"), "", cmoOverwrite
  131.  
  132.  
  133.  
  134. '' Enter Path and Version in WIN.INI
  135.     CreateIniKeyValue "WIN.INI", "Hex Workshop", "Path", MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
  136.     CreateIniKeyValue "WIN.INI", "Hex Workshop", "CurrentVersion", VERSION$, cmoOverwrite
  137.  
  138.  
  139.  
  140. '' Register Hex Workshop in Registry
  141.     CreateRegKeyValue "HexWorkshop", "HexWorkshop File"
  142.     CreateRegKeyValue "HexWorkshop\Shell\Open\Command", MakePath(DEST$, "HWORKS16.EXE %1")
  143.  
  144.  
  145.  
  146. '' Handle File Manager Extension (if it exists, update it, if not, ask the user)
  147.     WINDIR$ = GetWindowsDir()
  148.     rv% = DoesIniKeyExist(MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop")
  149.     IF rv% = 1 THEN
  150.         CreateIniKeyValue MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop", MakePath(DEST$, "HWFMGR.DLL"), cmoOverwrite
  151.     ELSE
  152.         sz$ = UIStartDlg(CUIDLL$, ASKFMEXT, "FRadioDlgProc", 0, "")
  153.         UIPop 1
  154.         IF sz$ = "CONTINUE" THEN
  155.             CreateIniKeyValue MakePath(WINDIR$, "WINFILE.INI"), "AddOns", "HexWorkshop", MakePath(DEST$, "HWFMGR.DLL"), cmoOverwrite
  156.         END IF
  157.     END IF
  158.  
  159.  
  160.  
  161. '' Handle MSVC Tools
  162.     bToolsFound% = 0
  163.     rv% = DoesFileExist(MakePath(WINDIR$, "MSVC.INI"), femExists)
  164.     IF rv% = 1 THEN
  165.         sz$ = GetIniKeyString(MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", "ToolNumber")
  166.         IF LEN(sz$) > 0 THEN 
  167.             numTools% = VAL(sz$)
  168.             FOR i% = 1 TO numTools%
  169.                 strTool$ = "ToolPathName" + LTRIM$(STR$(i%))    
  170.                 sz$ = GetIniKeyString(MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$)
  171.                 rv% = INSTR(sz$, "HWORKS16")
  172.                 IF rv% > 0 THEN
  173.                     CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
  174.                     bToolsFound% = 1
  175.                 ENDIF
  176.                 rv% = INSTR(sz$, "BCONV16")
  177.                 IF rv% > 0 THEN
  178.                     CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "BCONV16.EXE"), cmoOverwrite
  179.                     bToolsFound% = 1
  180.                 ENDIF
  181.                 rv% = INSTR(sz$, "CALC16")
  182.                 IF rv% > 0 THEN
  183.                     CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "CALC16.EXE"), cmoOverwrite
  184.                     bToolsFound% = 1
  185.                 ENDIF
  186.             NEXT
  187.         END IF
  188.         IF bToolsFound% = 0 THEN    
  189.             i% = FAddListItem("CheckItemsIn", "ON")
  190.             i% = FAddListItem("CheckItemsIn", "ON")
  191.             i% = FAddListItem("CheckItemsIn", "ON")
  192.             sz$ = UIStartDlg(CUIDLL$, ASKVCTOOLS, "FCheckDlgProc", 0, "")
  193.             UIPop 1
  194.         
  195.             i% = CbGetListItem("CheckItemsOut", 1, hwTool$, 32)
  196.             IF hwTool$ = "ON" THEN
  197.                 numTools% = numTools% + 1
  198.                 strTool$ = "ToolPathName" + LTRIM$(STR$(numTools%))    
  199.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "HWORKS16.EXE"), cmoOverwrite
  200.                 strTool$ = "ToolMenuText" + LTRIM$(STR$(numTools%))    
  201.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "&Hex Workshop", cmoOverwrite
  202.                 strTool$ = "ToolArguments" + LTRIM$(STR$(numTools%))    
  203.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
  204.                 strTool$ = "ToolInitialDir" + LTRIM$(STR$(numTools%))                                    
  205.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
  206.                 strTool$ = "ToolAskArguments" + LTRIM$(STR$(numTools%))    
  207.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "0", cmoOverwrite
  208.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", "ToolNumber", LTRIM$(STR$(numTools%)), cmoOverwrite
  209.             END IF
  210.         
  211.             i% = CbGetListItem("CheckItemsOut", 2, bcTool$, 32)
  212.             IF bcTool$ = "ON" THEN
  213.                 numTools% = numTools% + 1
  214.                 strTool$ = "ToolPathName" + LTRIM$(STR$(numTools%))    
  215.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, MakePath(DEST$, "BCONV16.EXE"), cmoOverwrite
  216.                 strTool$ = "ToolMenuText" + LTRIM$(STR$(numTools%))    
  217.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "&Base Converter", cmoOverwrite
  218.                 strTool$ = "ToolArguments" + LTRIM$(STR$(numTools%))    
  219.                 CreateIniKeyValue MakePath(WINDIR$, "MSVC.INI"), "Microsoft Visual C++", strTool$, "", cmoOverwrite
  220.                 strTool$ = "ToolInitialDir" + LTRIM$(STR$(numTools%